//引入Count的UI组件
import CountUI from '../../components/Count'

//引入connect用于连接UI组件与redux
import {connect} from 'react-redux'
import {createDecrementAction, createIncrementAction, createIncrementAsyncAction} from "../../redux/count_action";

/*
    1,mapStateToProps函数返回的是一个对象；
    2,返回的对象中的key就作为传递给UI组件props的key,value就作为传递给UI组件props的value
    3,mapStateToProps用于传递状态
*/
function mapStateToProps(state) {
    return {count: state}
}

/*
    1.mapDispatchToProps函数返回的是一个对象；
    2.返回的对象中的key就作为传递给UI组件props的key,value就作为传递给UI组件props的value
    3.mapDispatchToProps,用于传递操作状态的方法
*/
function mapDispatchToProps(dispatch) {
    return {
        countAdd: number => dispatch(createIncrementAction(number)),
        countSub: number => dispatch(createDecrementAction(number)),
        countAsyncAdd: (number, time) => dispatch(createIncrementAsyncAction(number, time))
    }
}

// 创建暴露一个容器组件
export default connect(mapStateToProps, mapDispatchToProps)(CountUI)

